如果我們現在試著在專案執行 gradle build
我們會在下面看到失敗的訊息:
這是怎麼一回事呢?這是因為我們的自動測試沒有通過啦!
自動測試簡單的說,就是為了解決程式撰寫完之後,人為測試總是可能有遺漏或者錯誤的地方這個問題,我們可以寫一段程式,
這樣一來,我們就可以隨時測試我們的程式。不管是在每次即將上線時,或者我們喜歡的任何時候,只要跑一下測試程式,我們就可以相當完整的測試一次程式,減少錯誤出現的機率。
之前我們改了 /
會顯示的文字,但是沒有調整自動測試的內容,那當然不會通過囉!
我們打開 test/ApplicationTest
看看裡面的內容:
class ApplicationTest {
@Test
fun testRoot() {
withTestApplication({ module(testing = true) }) {
handleRequest(HttpMethod.Get, "/").apply {
assertEquals(HttpStatusCode.OK, response.status())
assertEquals("HELLO WORLD!", response.content)
}
}
}
}
可以看到,這是檢查 /
會不會有「HELLO WORLD!」的自動測試。
我們稍微調整一下:
class ApplicationTest {
@Test
fun testRoot() {
withTestApplication({ module(testing = true) }) {
handleRequest(HttpMethod.Get, "/").apply {
assertEquals(HttpStatusCode.OK, response.status())
assertEquals("最好用的非同步網頁框架!開始用 Ktor 寫 Kotlin Server", response.content)
}
}
}
}
然後,我們重新跑一次 gradle build
,就會成功囉!